package com.toby.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

/**
 * @desc: aop配置类
 * @author: jonathan.zhang
 * @date: 2019/8/5 23:48
 */
@Configuration
/**
 * 此处需要注意的是，如果配置设置proxyTargetClass=false，或默认为false，则是用JDK代理，否则使用的是CGLIB代理
 * JDK代理的实现方式是基于接口实现，代理类继承Proxy，实现接口。而CGLIB继承被代理的类来实现。
 * 所以使用target会保证目标不变，匹配目标对象不会受到这个设置的影响。
 * 但是使用this时，会根据该选项的设置，CGLIB this可以代理原因是继承了被代理的对象也就是目标对象，JDK的this就不能被代理了。
 */
@EnableAspectJAutoProxy
@ComponentScan(basePackages="com.toby")
public class AopConfig {
}
